import request from '../http.uni.js'; //笔者自己封装的网络请求类，也可以直接使用uni.request
import config from'@/config/config.js';
var jweixin = require('jweixin-module');
import {
		mapState,
		mapMutations
	} from "vuex";
export default {
	//判断是否在微信中
	isWechat: function() {

		var ua = window.navigator.userAgent.toLowerCase();
		console.log(ua);
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			return true;
		} else {
			return false;
		}
	},
	//初始化sdk配置
	initJssdk: function(callback, url) {
		//服务端进行签名 ，可使用uni.request替换。 签名算法请看文档
		///api/oauth/weixin/sign
		console.log(config.AppSecret);
		console.log(config.APP_ID);
		request.get(
			`https://api.sp.cq.cn/api/open/weixin/jssdk/sign?url=${url}&appId=${config.APP_ID}&appSecret=${config.AppSecret}`
		).then(res => {
			//request.get(`api/weixin/TenPay/V3/sign?url=${encodeURIComponent(url)}`).then(res => {
			if (res) {
				jweixin.config({
					debug: false,
					appId: res.appId + '',
					timestamp: res.timestamp,
					nonceStr: res.nonceStr + '',
					signature: res.signature + '',
					jsApiList: ['checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'openLocation', 'getLocation',
						'chooseWXPay', 'hideMenuItems'
					]
				});

				jweixin.error(function(res) {
					// alert(JSON.stringify(res));
					// alert('验证失败');
				});
				//配置完成后，再执行分享等功能
				if (callback) {
					callback(res.data);
				}
			}
		});
	},
	hideShare() {
		url = url ? url : window.location.href.split('#')[0];;
		if (!this.isWechat()) {
			return;
		}
		this.initJssdk(function(signData) {
			jweixin.ready(function() {
				jweixin.hideMenuItems({ // 要隐藏的菜单项，只能隐藏“传播类”和“保护类”按钮，所有menu项见附录3
					menuList: ['menuItem:share:appMessage', 'menuItem:share:timeline', 'menuItem:share:timeline',
						'menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:openWithSafari'
					]
				});
			});

		},url);
},
//在需要自定义分享的页面中调用
share: function(data, url) {
		url = url ? url : window.location.href.split('#')[0];;

		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置，才可以进行分享
		this.initJssdk(function(signData) {
			jweixin.ready(function() {
				var shareData = {
					title: data.title,
					desc: data.desc,
					link: data.link,
					imgUrl: data.img,
					success: function(res) {
						//用户点击分享后的回调，这里可以进行统计，例如分享送金币之类的
						request.post('/api/member/share');
					},
					cancel: function(res) {}
				};
				//分享给朋友接口
				jweixin.onMenuShareAppMessage(shareData);
				//分享到朋友圈接口
				jweixin.onMenuShareTimeline(shareData);
			});
		}, url);
	},

	getLocation: function(callback, url) {
		url = url ? url : window.location.href.split('#')[0];;
		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置，才可以进行分享
		this.initJssdk(function() {
			jweixin.ready(function() {

				jweixin.getLocation({
					type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
					success: function(res) {
						var latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
						var longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
						var speed = res.speed; // 速度，以米/每秒计
						var accuracy = res.accuracy; // 位置精度

						callback(res);
					}
				});
			});
		}, url);
	},

	openLocation: function(latitude, longitude, name, address, url) {
		url = url ? url : window.location.href;
		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置
		this.initJssdk(function(signData) {
			jweixin.ready(function() {

				jweixin.openLocation({
					longitude: longitude,
					latitude: latitude,
					name: address,
					address: address,
					success: function() {

					}
				});
			});
		}, url);
	},

	chooseWXPay: function(sign, url) {
		url = url ? url : window.location.href;
		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置
		//  this.initJssdk(function(signData) {
		//      jweixin.ready(function() {
		// jweixin.chooseWXPay({
		//   appId: sign.appId,
		//   timestamp: sign.timestamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
		//   nonceStr: sign.nonceStr, // 支付签名随机串，不长于 32 位
		//   package: sign.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
		//   signType: 'MD5', // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
		//   paySign: sign.signature, // 支付签名
		//   success: function (res) {
		//     // 支付成功后的回调函数
		// 	console.log('payment success');
		//   }
		// });
		//      });
		//  }, url);

		jweixin.ready(function() {
			jweixin.chooseWXPay({
				appId: sign.appId,
				timestamp: sign.timestamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
				nonceStr: sign.nonceStr, // 支付签名随机串，不长于 32 位
				package: sign.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
				signType: 'MD5', // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
				paySign: sign.signature, // 支付签名
				success: function(res) {
					// 支付成功后的回调函数
					console.log('payment success');
				}
			});
		});
	}
};
